The Internet supports varying levels of data traffic associated with different services provided to browsing clients. For example, a web site may serve tens or several hundreds of web pages. When traffic levels to a web site are relatively low, a single computer may be used to serve web pages to browsing clients. However, when the web traffic levels are high, a single computer is no longer capable of providing quick and reliable access to web pages. The problem of scalability applies to all types of Internet services, including streaming media and content management servers, where a single Internet Protocol (IP) address may be accessed by large numbers of clients.
The data traffic load for a web site or other Internet service can be shared between several server computers, or servers, by a technique known as round-robin DNS. When a client browser initiates access to a URL, the client first obtains the IP address to which the domain name portion of the URL corresponds. The client achieves this by accessing a Domain Name Server (DNS) lookup table. In the case where several IP addresses are allocated to a domain name, all IP addresses to which the domain name corresponds are supplied to the client browser. The client browser then selects one of the IP addresses to use to access the URL. Typically, the client browser chooses an IP address at random. When a large number of browsers access the same URL simultaneously, the random selection of one of the IP addresses by each browser results in all the IP addresses being used.
Thus, using round-robin DNS, the traffic load to a web site should be spread across several web servers. However, a first problem with round-robin DNS is that if one of the web servers fails, the client browsers that select the IP address of the failed web server will not access the web site.
A second problem with round-robin DNS arises from the use of proxy caches by Internet Service Providers (ISPs). A proxy cache stores pages recently served to an ISP client. If a page is requested that is stored in a proxy cache, the ISP serves the cached version of the page in preference to making a new request to the originating site to serve the page. When a page is requested that is not stored in the proxy cache, the originally selected IP address may be used to request the originating site to serve the page. When the ISP has a large number of customers, the use of a prior selected IP address by a client browser, in preference to repeating the step of selecting an IP address, contradicts the traffic load distribution function that round-robin DNS would otherwise provide. This effectively renders sites that rely on round-robin DNS to operate dependably vulnerable to excessive traffic demands regardless of the number of servers employed to host the site.